The present invention relates to data processing used for a full-color printing related equipment such as a printer, a video printer, a scanner or the like, an image processor for forming computer graphic images or a display device such as a monitor. More specifically, the invention relates to a color conversion device and a color conversion method for performing color conversion from image data in the form of a first set of three color data of red, green and blue, or cyan, magenta and yellow, to a second set of three color data of red, green and blue, or cyan, magenta and yellow.
Color conversion in printing is an indispensable technology for compensating deterioration of image quality due to color mixing property due to the fact that the ink is not of a pure color, or the non-linearity (in the hue) of the image-printing, and to output a printed image with a high color reproducibility. Also, in a display device such as a monitor or the like, color conversion is performed in order to output (display) an image having desired color reproducibility in accordance with conditions under which the device is used or the like when an inputted color signal is to be displayed.
Conventionally, two methods have been available for the foregoing color conversion: a table conversion method and a matrix calculation method.
A representative example of the table conversion method is a three-dimensional look-up table method, in which the image data represented by red, green and blue (hereinafter referred to as R, G, and B) are input, to output an image data of R, G, and B stored in advance in a memory, such as a ROM, or complementary color data of yellow, cyan and magenta (hereinafter referred to as Y, M, and C). Because any desired conversion characteristics can be achieved, color conversion with a good color reproducibility can be performed.
However, in a simple structure for storing data for each combination of image data, a large-capacity memory of about 400 Mbites must be used. For example, even in the case of a compression method for memory capacity disclosed in Japanese Patent Kokai Publication No. S63-227181, memory capacity is about 5 Mbites. Therefore, a problem inherent in the table conversion system is that since a large-capacity memory is necessary for each conversion characteristic, it is difficult to implement the method by means of an LSI, and it is also impossible to deal with changes in the condition under which the conversion is carried out.
On the other hand, in the case of the matrix calculation method, for example, for obtaining printing data of Y, M and C from image data of R, G and B, the following formula (11) is used as a basic calculation formula.                               [                                                    Y                                                                    M                                                                    C                                              ]                =                              (                          A              ⁢                                                          ⁢              i              ⁢                                                          ⁢              j                        )                    ⁡                      [                                                            R                                                                              G                                                                              B                                                      ]                                              (        11        )            
Here, Aij represents coefficients, with i=1 to 3, and j=1 to 3.
However, by the simple linear calculation of the formula (11), it is impossible to provide a good conversion characteristic because of a non-linearity of an image-printing or the like.
A method has been proposed for providing a conversion characteristic to improve the foregoing characteristic. This method is disclosed in Japanese Patent Application Kokoku Publication H2-30226, directed to a color correction calculation device, and employs a matrix calculation formula (12) below.                               [                                                    Y                                                                    M                                                                    C                                              ]                =                              (                          D              ⁢                                                          ⁢              i              ⁢                                                          ⁢              j                        )                    ⁡                      [                                                            R                                                                                                                                                G                                                                                                            B                                                                                                                                      R                          *                          G                                                                                                                                                              G                          *                          B                                                                                                                                                              B                          *                          R                                                                                                                                                              R                          *                          R                                                                                                                                                              G                          *                          G                                                                                                                                                              B                          *                          B                                                                                                                                    N                                                                                                                  ]                                              (        12        )            
Here, N is a constant, i=1 to 3, and j=1 to 10.
In the foregoing formula (12), since image data having a mixture of an achromatic component and a color component is directly used, mutual interference occur in computation. In other words, if one of the coefficients is changed, influence is given to the components or hues other than the target component or hue (the component or hue for which the coefficient is changed). Consequently, a good conversion characteristic cannot be realized.
A color conversion method disclosed in Japanese Patent Application Kokai Publication H7-170404 is a proposed solution to this problem. FIG. 20 is a block circuit diagram showing the color conversion method for conversion of image data of R, G and B into printing data of C, M and Y, disclosed in Japanese Patent Application Kokai Publication H7-170404. In the drawing, reference numeral 100 denotes a complement calculator; 101, a minimum and maximum calculator; 102, a hue data calculator; 103, a polynomial calculator; 104, a matrix calculator; 105, a coefficient generator; and 106, a synthesizer.
Next, the operation will be described. The complement calculator 100 receives image data R, G and B, and outputs complementary color data Ci, Mi and Yi which have been obtained by determining 1's complements.
The determination of 1's complement of an input data can be achieved by subtracting the value of the input data of n bits (n being an integer) from (2n−1). For example, in the case of 8-bit data, the value of the input data is deducted from “255”.
The minimum and maximum calculator 101 outputs a maximum value β and a minimum value α of this complementary color data and an identification code S for indicating, among the six hue data, data which are zero.
The hue data calculator 102 receives the complementary color data Ci, Mi and Yi and the maximum and minimum values β and α, and outputs six hue data r, g, b, y, m and c which are obtained by executing the following subtraction:
r =β − Ci,g =β − Mi,b =β − Yi,y =Yi − α,m =Mi − α, andc =Ci − α,Here, among the six hue data, at least two assume the value zero.
The polynomial calculator 103 receives the hue data and the identification code S, selects, from r, g and b, two data Q1 and Q2 which are not zero and, from y, m and c, two data P1 and P2 which are not zero. Based on these data, the polynomial calculator 103 computes polynomial data:
T1 =P1*P2,T3 =Q1*Q2,T2 =T1/(P1 + P2), andT4 =T3/(Q1 + Q2),and then outputs the results of the calculation.
It is noted that asterisks “*” are sometimes used in this specification to indicate multiplication.
The coefficient generator 105 generates calculation coefficients U(Fij) and fixed coefficients U(Eij) for the polynomial data based on information of the identification code S. The matrix calculator 104 receives the hue data y, m and c, the polynomial data T1 to T4 and the coefficients U, and outputs the result of the following formula (13) as color ink data C1, M1 and Y1.                               [                                                    C1                                                                    M1                                                                    Y1                                              ]                =                                            (                              E                ⁢                                                                  ⁢                i                ⁢                                                                  ⁢                j                            )                        ⁡                          [                                                                    c                                                                                        m                                                                                        y                                                              ]                                +                                    (                              F                ⁢                                                                  ⁢                i                ⁢                                                                  ⁢                j                            )                        ⁡                          [                                                                                          c                      *                      m                                                                                                                                  m                      *                      y                                                                                                                                  y                      *                      c                                                                                                                                  r                      *                      g                                                                                                                                  g                      *                      b                                                                                                                                  b                      *                      r                                                                                                                                  c                      *                                              m                        /                                                  (                                                      c                            +                            m                                                    )                                                                                                                                                                                m                      *                                              y                        /                                                  (                                                      m                            +                            y                                                    )                                                                                                                                                                                y                      *                                              c                        /                                                  (                                                      y                            +                            c                                                    )                                                                                                                                                                                r                      *                                              g                        /                                                  (                                                      r                            +                            g                                                    )                                                                                                                                                                                g                      *                                              b                        /                                                  (                                                      g                            +                            b                                                    )                                                                                                                                                                                b                      *                                              r                        /                                                  (                                                      b                            +                            r                                                    )                                                                                                                                ]                                                          (        13        )            
The synthesizer 106 adds together the color ink data C1, M1 and Y1 and data α which is the achromatic data, and outputs printing data C, M and Y. Accordingly, the following formula (14) is used for obtaining printing data.                               [                                                    C                                                                    M                                                                    Y                                              ]                =                                            (                              E                ⁢                                                                  ⁢                i                ⁢                                                                  ⁢                j                            )                        ⁡                          [                                                                    c                                                                                        m                                                                                        y                                                              ]                                +                                    (                              F                ⁢                                                                  ⁢                i                ⁢                                                                  ⁢                j                            )                        ⁡                          [                                                                                          c                      *                      m                                                                                                                                  m                      *                      y                                                                                                                                  y                      *                      c                                                                                                                                  r                      *                      g                                                                                                                                  g                      *                      b                                                                                                                                  b                      *                      r                                                                                                                                  c                      *                                              m                        /                                                  (                                                      c                            +                            m                                                    )                                                                                                                                                                                m                      *                                              y                        /                                                  (                                                      m                            +                            y                                                    )                                                                                                                                                                                y                      *                                              c                        /                                                  (                                                      y                            +                            c                                                    )                                                                                                                                                                                r                      *                                              g                        /                                                  (                                                      r                            +                            g                                                    )                                                                                                                                                                                g                      *                                              b                        /                                                  (                                                      g                            +                            b                                                    )                                                                                                                                                                                b                      *                                              r                        /                                                  (                                                      b                            +                            r                                                    )                                                                                                                                ]                                +                      [                                                            α                                                                              α                                                                              α                                                      ]                                              (        14        )            
The formula (14) shows a general formula for a group of pixels.
FIG. 21A to FIG. 21F, which are schematic diagrams, show relations between six hues of red (R), green (G), blue (B), yellow (Y), cyan (C) and magenta (M), and hue data y, m, c, r, g and b. As shown, each hue data relates to three hues (i.e., extends over the range of three hues). For instance the hue data c relates to the hues g, c and b.
FIG. 22A to FIG. 22F, which are schematic diagrams, show relations between the six hues and product terms y*m, r*g, c*y, g*b, m*c and b*r.
As shown, each of the six product terms y*m, m*c, c*y, r*g, g*b and b*r in the formula (14) relates to only one hue among the six hues of red, blue, green, yellow, cyan and magenta. That is, only y*m is an effective product term for red; m*c for blue; c*y for green; r*g for yellow; g*b for cyan; and b*r for magenta.
Also, each of the six fraction terms y*m/(y+m), m*c/(m+c), c*y/(c+y), r*g/(r+g), g*b/(g+b) and b*r/(b+r) in the formula (14) relates to only one hue among the six hues.
As apparent from the foregoing, according to the color conversion method shown in FIG. 20, by changing coefficients for the product terms and the fraction terms regarding the specific hue, only the target hue can be adjusted without influencing other hues.
Each of the foregoing product terms is determined by a second-order computation for chroma, and each of the fraction terms is determined by a first-order computation for chroma. Thus, by using both of the product terms and the fraction terms, the non-linearity of an image-printing for chroma can be adjusted.
However, this color conversion method cannot satisfy a certain desire. That is, depending on the user's preference, if an area in a color space occupied by specific hues is to be expanded or reduced, e.g., specifically, if expansion or reduction in an area of red in a color space including magenta, red and yellow is desired, the conventional color conversion method of the matrix computation type could not meet such a desire.
The problems of the conventional color conversion method or color conversion device are summarized as follows. Where the color conversion device is of a three-dimensional look-up table conversion method employing a memory such as ROM, a large-capacity memory is required, and a conversion characteristic cannot be flexibly changed. Where the color conversion device is of a type using a matrix calculation method, although it is possible to change only a target hue, it is not possible to vary the color in the inter-hue areas between adjacent ones of the six hues of red, blue, green, yellow, cyan and magenta, and good conversion characteristics cannot be realized throughout the entire color space. Moreover, with the matrix conversion method shown in FIG. 20, when the output of the output device represented by the reflectivity or luminance, or the like has a non-linear gray scale characteristics with respect to the image data, as in the case of a printing device, a cathode-ray tube display device, liquid crystal display device, or the like, desirable conversion characteristics cannot be obtained.